#ifndef CHATSERVER_H
#define CHATSERVER_H

#include <muduo/net/TcpServer.h>
#include <muduo/net/EventLoop.h>
using namespace muduo;
using namespace muduo::net;

#endif

// 聊天服务器对象主类
class ChatServer
{
public:
    // 初始化聊天服务器对象
    ChatServer(EventLoop *loop,               // 事件循环
               const InetAddress &listenAddr, // IpPort
               const string &nameArg);
    
    // 启动服务
    void start();

private:
    TcpServer _server;  // 组合的muduo库，实现服务器功能的类对象
    EventLoop *_loop;  // 指向事件循环的指着

    // 上报连接相关信息的回调函数，连接建立、断开回调
    void onConnection(const TcpConnectionPtr &conn);

    // 上报读写信息相关回调
    void onMessage(const TcpConnectionPtr &conn, Buffer *buffer, Timestamp time);
};